xend: canonicalise symlinks found in /dev for vbds (helps vscsi)
authorJames Harper <james.harper@bendigoit.com.au>
Tue, 8 Feb 2011 16:35:35 +0000 (16:35 +0000)
committerJames Harper <james.harper@bendigoit.com.au>
Tue, 8 Feb 2011 16:35:35 +0000 (16:35 +0000)
By default, vscsi expects to be passed the final device name (eg
/dev/st3) instead of one of the various udev symlinks (eg
/dev/tape/by-path/pci-0000:01:08.0-scsi-0:0:2:0-st). The following patch
resolves the path to the real path if the name starts with /dev/

Signed-off-by: James Harper <james.harper@bendigoit.com.au>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
tools/python/xen/util/vscsi_util.py

index c8c2f36641e6d554207b23db4e8cb72a0479f8cd..b73fc5834b4c6aa22d92e50a53a72f218a55b7dc 100644 (file)
@@ -159,6 +159,8 @@ def vscsi_get_scsidevices(mask=""):
 
 
 def vscsi_get_hctl_and_devname_by(target, scsi_devices = None):
+    if target.startswith('/dev/'):
+        target = os.path.realpath(target)
     if scsi_devices is None:
         if len(target.split(':')) == 4:
             scsi_devices = _vscsi_get_scsidevices_by_lsscsi(target)